Industrial process control and automation systems routinely include a wide variety of devices. These devices often range from smaller and resource-constrained devices (like sensors, actuators, and embedded controllers) to larger and more powerful devices (like enterprise servers). It is very hard to create software that scales from the smallest hardware devices with only one thread of execution up to the largest of enterprise servers with large resource reserves. This can increase the time, efforts, and costs associated with software development. Note that this problem is not limited to industrial process control and automation systems and can affect software development and execution in a large number of technology fields.